Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
recursive-readdir
Advanced tools
The recursive-readdir npm package is used to recursively read directories and list all files within them. It can be particularly useful for tasks such as file system traversal, searching for specific file types, and performing operations on a large number of files within nested directories.
Basic Usage
This feature allows you to list all files in a directory and its subdirectories. The code sample demonstrates how to use the package to read all files in a specified directory.
const recursive = require('recursive-readdir');
recursive('path/to/directory', (err, files) => {
if (err) {
console.error(err);
} else {
console.log(files);
}
});
Filtering Files
This feature allows you to filter out certain files or directories. The code sample demonstrates how to ignore the 'node_modules' directory while listing all other files.
const recursive = require('recursive-readdir');
const ignoreFunc = (file, stats) => {
return stats.isDirectory() && file === 'node_modules';
};
recursive('path/to/directory', [ignoreFunc], (err, files) => {
if (err) {
console.error(err);
} else {
console.log(files);
}
});
Using Promises
This feature allows you to use promises instead of callbacks for better readability and error handling. The code sample demonstrates how to use promises to list all files in a specified directory.
const recursive = require('recursive-readdir');
recursive('path/to/directory')
.then(files => {
console.log(files);
})
.catch(err => {
console.error(err);
});
The readdirp package is another option for recursively reading directories. It offers a more flexible API with support for streams, promises, and callbacks. Compared to recursive-readdir, readdirp provides more advanced filtering options and better performance for large directories.
The klaw package is a file system walker that allows you to recursively read directories and perform actions on each file. It supports streams and provides a more modular approach compared to recursive-readdir. Klaw is particularly useful for applications that need to process files as they are read.
The fs-extra package extends the native Node.js fs module with additional methods, including recursive directory reading. While it is not as specialized as recursive-readdir, fs-extra offers a wide range of file system utilities, making it a versatile choice for various file operations.
A simple Node module for recursively listing all files in a directory, or in any subdirectories.
It does not list directories themselves.
Because it uses fs.readdir, which calls readdir under the hood on OS X and Linux, the order of files inside directories is not guaranteed.
npm install recursive-readdir
var recursive = require('recursive-readdir');
recursive('some/path', function (err, files) {
// Files is an array of filename
console.log(files);
});
It can also take a list of files to ignore.
var recursive = require('recursive-readdir');
// ignore files named 'foo.cs' or files that end in '.html'.
recursive('some/path', ['foo.cs', '*.html'], function (err, files) {
// Files is an array of filename
console.log(files);
});
You can also pass functions which are called to determine whether or not to ignore a file:
var recursive = require('recursive-readdir');
function ignoreFunc(file, stats) {
// `file` is the absolute path to the file, and `stats` is an `fs.Stats`
// object returned from `fs.lstat()`.
return stats.isDirectory() && path.basename(file) == "test";
}
// Ignore files named 'foo.cs' and descendants of directories named test
recursive('some/path', ['foo.cs', ignoreFunc], function (err, files) {
// Files is an array of filename
console.log(files);
});
The ignore strings support Glob syntax via minimatch.
FAQs
Get an array of all files in a directory and subdirectories.
The npm package recursive-readdir receives a total of 4,224,738 weekly downloads. As such, recursive-readdir popularity was classified as popular.
We found that recursive-readdir demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.